package com.company.action;

import java.util.List;
import java.util.Map;

import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.Query;

import model.Opcione;
import model.Persona;

import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.interceptor.SessionAware;

import com.company.common.util.Utilitario;

//import edu.progra2.common.util.Utilitario;

@Action(value="inicio",
	results={
		@Result(name="exito", location="/inicio.jsp"),
		@Result(name="error", location="/login.jsp")
} )
public class HomeAction implements SessionAware{

	private Map<String, Object> session;
    public Map<String, Object> getSession() {
         return session;
    }
    public void setSession(Map<String, Object> session) {
         this.session = session;
    }
    
    private List<Opcione> opciones;
    
	public List<Opcione> getOpciones() {
		return opciones;
	}
	public void setOpciones(List<Opcione> opciones) {
		this.opciones = opciones;
	}
	
	public String execute(){
		String result="exito";
		EntityManager em = Utilitario.getInstance().getEntityManager();
		
		if (session.size()==0) {
			result="error";
        }else{
        	Persona tmp = (Persona) session.get("persona");
        	Query q = em.createQuery("SELECT o FROM Opcione o WHERE o.idPersona = :idPersona");
    		q.setParameter("idPersona", tmp.getIdPersona());
    		try{
    			opciones = q.getResultList();
    		}catch(NoResultException e){
    			opciones = null;
    		}
    		
    		session.put("opciones",opciones);
    		
        }
		
		
		return result;
	}
	
}
